\hypertarget{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1}{
\section{Zebulon::MicroStrain::ThreeDMGX1 Class Reference}
\label{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1}\index{Zebulon::MicroStrain::ThreeDMGX1@{Zebulon::MicroStrain::ThreeDMGX1}}
}


Interface class for the \hyperlink{namespace_micro_strain}{MicroStrain} 3DM-\/GX1 Orientation Sensor using RS232.  


{\ttfamily \#include $<$threedmgx1.h$>$}\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_1_1_callback}{Callback}
\begin{DoxyCompactList}\small\item\em \hyperlink{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_1_1_callback}{Callback} class to register for messages as the arrive on the serial port. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_a6912065157df69f29ad37eedaa14ea3b}{
{\bfseries ThreeDMGX1} (const unsigned int maxQueueSize=15)}
\label{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_a6912065157df69f29ad37eedaa14ea3b}

\item 
\hypertarget{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_afd63378a3400d824028919bae38c33cf}{
int {\bfseries Initialize} (const std::string \&port, const unsigned int ibaud=38400, const bool tryOtherBauds=true, const unsigned int timout=2000)}
\label{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_afd63378a3400d824028919bae38c33cf}

\item 
\hypertarget{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_acbc95c6607103a72ae934357608a4bfe}{
int {\bfseries Shutdown} ()}
\label{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_acbc95c6607103a72ae934357608a4bfe}

\item 
\hypertarget{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_a50787af440a8c458314430ab0937d4f0}{
int {\bfseries RegisterCallback} (\hyperlink{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_1_1_callback}{ThreeDMGX1::Callback} $\ast$cb)}
\label{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_a50787af440a8c458314430ab0937d4f0}

\item 
\hypertarget{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_a6a2d089b973be5fad70bda91c97198f9}{
int {\bfseries RemoveCallback} (\hyperlink{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_1_1_callback}{ThreeDMGX1::Callback} $\ast$cb)}
\label{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_a6a2d089b973be5fad70bda91c97198f9}

\item 
\hypertarget{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_aa48fe3ef7cbad5a25510c9629fd3b331}{
bool {\bfseries IsConnected} () const }
\label{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_aa48fe3ef7cbad5a25510c9629fd3b331}

\item 
\hypertarget{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_a2bc862ccdccd659d6b9628e98d686b1e}{
bool {\bfseries SetContinuousMode} (const Message::Type type)}
\label{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_a2bc862ccdccd659d6b9628e98d686b1e}

\item 
\hypertarget{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_ab27e39f6077d81b6118087ddaa4bd0b0}{
bool {\bfseries TransmitMessage} (const CxUtils::Packet message, \hyperlink{class_zebulon_1_1_micro_strain_1_1_message}{MicroStrain::Message} $\ast$$\ast$response, unsigned int timeout=1000)}
\label{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_ab27e39f6077d81b6118087ddaa4bd0b0}

\end{DoxyCompactItemize}
\subsection*{Static Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_ac80f90fdd3aa86592c70b29a0fafb07a}{
static void {\bfseries ReceiveThreadFunction} (void $\ast$args)}
\label{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_ac80f90fdd3aa86592c70b29a0fafb07a}

\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_a2f279aa1a4d85b0661b292003e46c508}{
volatile bool \hyperlink{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_a2f279aa1a4d85b0661b292003e46c508}{mConnectedFlag}}
\label{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_a2f279aa1a4d85b0661b292003e46c508}

\begin{DoxyCompactList}\small\item\em Flag to indicate a connection has been made. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_a2901752106b75c73fec647fa34412c98}{
CxUtils::Mutex \hyperlink{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_a2901752106b75c73fec647fa34412c98}{mTransmittingMutex}}
\label{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_a2901752106b75c73fec647fa34412c98}

\begin{DoxyCompactList}\small\item\em Mutex to signal sending data. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_ac83dbc2f8990b27b723533b004006d41}{
CxUtils::Mutex \hyperlink{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_ac83dbc2f8990b27b723533b004006d41}{mMessageQueueMutex}}
\label{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_ac83dbc2f8990b27b723533b004006d41}

\begin{DoxyCompactList}\small\item\em Mutex for message queue. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_a375ab6031a5a18b666720ee7c0cfef40}{
CxUtils::Mutex \hyperlink{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_a375ab6031a5a18b666720ee7c0cfef40}{mCallbackMutex}}
\label{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_a375ab6031a5a18b666720ee7c0cfef40}

\begin{DoxyCompactList}\small\item\em Mutex for callbacks. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_afa4170a65bde31f312861fbc34d7c182}{
CxUtils::Thread \hyperlink{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_afa4170a65bde31f312861fbc34d7c182}{mReceiveThread}}
\label{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_afa4170a65bde31f312861fbc34d7c182}

\begin{DoxyCompactList}\small\item\em Thread for receiving data from sensor. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_ad991973be5d2667eb725d8c755b21eb6}{
CxUtils::Serial \hyperlink{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_ad991973be5d2667eb725d8c755b21eb6}{mSerialPort}}
\label{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_ad991973be5d2667eb725d8c755b21eb6}

\begin{DoxyCompactList}\small\item\em Serial port interface. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_abfad45047b9ca912508ef4c43792fa3a}{
Message::Type \hyperlink{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_abfad45047b9ca912508ef4c43792fa3a}{mContinuousModeType}}
\label{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_abfad45047b9ca912508ef4c43792fa3a}

\begin{DoxyCompactList}\small\item\em Type of continuous mode to maintain. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_af92c86e9de4511fd38e8042a3dddf2d4}{
Message::List \hyperlink{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_af92c86e9de4511fd38e8042a3dddf2d4}{mMessageQueue}}
\label{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_af92c86e9de4511fd38e8042a3dddf2d4}

\begin{DoxyCompactList}\small\item\em All received messages. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_ab8152aed8911dc7336079f3bda95852b}{
std::set$<$ \hyperlink{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_1_1_callback}{ThreeDMGX1::Callback} $\ast$ $>$ \hyperlink{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_ab8152aed8911dc7336079f3bda95852b}{mCallbacks}}
\label{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_ab8152aed8911dc7336079f3bda95852b}

\begin{DoxyCompactList}\small\item\em Set of callbacks. \item\end{DoxyCompactList}\item 
\hypertarget{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_a795b05f7773b939803ca34070d954253}{
unsigned int \hyperlink{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_a795b05f7773b939803ca34070d954253}{mMaxQueueSize}}
\label{class_zebulon_1_1_micro_strain_1_1_three_d_m_g_x1_a795b05f7773b939803ca34070d954253}

\begin{DoxyCompactList}\small\item\em Maximum number of messages to store. \item\end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Interface class for the \hyperlink{namespace_micro_strain}{MicroStrain} 3DM-\/GX1 Orientation Sensor using RS232. 

The documentation for this class was generated from the following file:\begin{DoxyCompactItemize}
\item 
C:/Users/Matt/Documents/School/Robotics/zebulon/v2/microstrain/include/microstrain/\hyperlink{threedmgx1_8h}{threedmgx1.h}\end{DoxyCompactItemize}
